/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package scacp;

import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 *
 * @author cleber
 */
public class Scacp extends javax.swing.JFrame {

    Prova prova;
    CartaoPainelGerencimento painelGerenciamentoCartao;
    
    /**
     * Creates new form Scacp
     */
    public Scacp() {
        prova = new Prova();
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        painelConteudoProva = new javax.swing.JPanel();
        painelConteudoCartao = new javax.swing.JPanel();
        barraMenuPrincipal = new javax.swing.JMenuBar();
        menuArquivo = new javax.swing.JMenu();
        itmNovo = new javax.swing.JMenuItem();
        itmAbrir = new javax.swing.JMenuItem();
        itmSalvar = new javax.swing.JMenuItem();
        itmSalvarComo = new javax.swing.JMenuItem();
        itmImprimir = new javax.swing.JMenuItem();
        itmFechar = new javax.swing.JMenuItem();
        itmSair = new javax.swing.JMenuItem();
        menuEditar = new javax.swing.JMenu();
        itmInserirCartao = new javax.swing.JMenuItem();
        itmAlterarCartao = new javax.swing.JMenuItem();
        itmExcluir = new javax.swing.JMenuItem();
        itmLocalizar = new javax.swing.JMenuItem();
        menuCorrigir = new javax.swing.JMenu();
        menuConfigurar = new javax.swing.JMenu();
        menuTipoProva = new javax.swing.JMenu();
        itmrbMultiplaEscolha = new javax.swing.JRadioButtonMenuItem();
        itmrbVerdadeiroFalso = new javax.swing.JRadioButtonMenuItem();
        itmQuantidadeQuestoes = new javax.swing.JMenuItem();
        menuEscalaPontuacao = new javax.swing.JMenu();
        itmPontuacaoMinima = new javax.swing.JMenuItem();
        itmPontuacaoMaximo = new javax.swing.JMenuItem();
        itmPrecisaoPontuacao = new javax.swing.JMenuItem();
        menuSistemaPenalizacao = new javax.swing.JMenu();
        chbmIncidenciaPenalizacao = new javax.swing.JCheckBoxMenuItem();
        itmProporcaoPenalizacao = new javax.swing.JMenuItem();
        menuAjuda = new javax.swing.JMenu();
        itmAjuda = new javax.swing.JMenuItem();
        itmSobre = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("SCACP - Sistema de Correção Automática de Cartões de Prova");
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setPreferredSize(new java.awt.Dimension(800, 600));

        painelConteudoProva.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

        painelConteudoCartao.setLayout(new javax.swing.BoxLayout(painelConteudoCartao, javax.swing.BoxLayout.LINE_AXIS));

        menuArquivo.setText("Arquivo");

        itmNovo.setText("Novo");
        itmNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmNovoActionPerformed(evt);
            }
        });
        menuArquivo.add(itmNovo);

        itmAbrir.setText("Abrir");
        itmAbrir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmAbrirActionPerformed(evt);
            }
        });
        menuArquivo.add(itmAbrir);

        itmSalvar.setText("Salvar");
        itmSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmSalvarActionPerformed(evt);
            }
        });
        menuArquivo.add(itmSalvar);

        itmSalvarComo.setText("Salvar como...");
        itmSalvarComo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmSalvarComoActionPerformed(evt);
            }
        });
        menuArquivo.add(itmSalvarComo);

        itmImprimir.setText("Imprimir");
        itmImprimir.setEnabled(false);
        itmImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmImprimirActionPerformed(evt);
            }
        });
        menuArquivo.add(itmImprimir);

        itmFechar.setText("Fechar");
        itmFechar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmFecharActionPerformed(evt);
            }
        });
        menuArquivo.add(itmFechar);

        itmSair.setText("Sair");
        itmSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmSairActionPerformed(evt);
            }
        });
        menuArquivo.add(itmSair);

        barraMenuPrincipal.add(menuArquivo);

        menuEditar.setText("Editar");
        menuEditar.setEnabled(false);

        itmInserirCartao.setText("Inserir cartão");
        itmInserirCartao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmInserirCartaoActionPerformed(evt);
            }
        });
        menuEditar.add(itmInserirCartao);

        itmAlterarCartao.setText("Alterar cartão");
        itmAlterarCartao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmAlterarCartaoActionPerformed(evt);
            }
        });
        menuEditar.add(itmAlterarCartao);

        itmExcluir.setText("Excluir cartão");
        itmExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmExcluirActionPerformed(evt);
            }
        });
        menuEditar.add(itmExcluir);

        itmLocalizar.setText("Localizar cartão");
        itmLocalizar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmLocalizarActionPerformed(evt);
            }
        });
        menuEditar.add(itmLocalizar);

        barraMenuPrincipal.add(menuEditar);

        menuCorrigir.setText("Corrigir");
        menuCorrigir.setEnabled(false);
        menuCorrigir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuCorrigirActionPerformed(evt);
            }
        });
        barraMenuPrincipal.add(menuCorrigir);

        menuConfigurar.setText("Configurar");
        menuConfigurar.setEnabled(false);
        menuConfigurar.setVisible(false);

        menuTipoProva.setText("Tipo de Prova");

        itmrbMultiplaEscolha.setSelected(true);
        itmrbMultiplaEscolha.setText("Múltipla Escolha");
        itmrbMultiplaEscolha.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmrbMultiplaEscolhaActionPerformed(evt);
            }
        });
        menuTipoProva.add(itmrbMultiplaEscolha);

        itmrbVerdadeiroFalso.setSelected(true);
        itmrbVerdadeiroFalso.setText("Verdadeiro ou Falso");
        itmrbVerdadeiroFalso.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmrbVerdadeiroFalsoActionPerformed(evt);
            }
        });
        menuTipoProva.add(itmrbVerdadeiroFalso);

        menuConfigurar.add(menuTipoProva);

        itmQuantidadeQuestoes.setText("Quantidade de Questões");
        itmQuantidadeQuestoes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmQuantidadeQuestoesActionPerformed(evt);
            }
        });
        menuConfigurar.add(itmQuantidadeQuestoes);

        menuEscalaPontuacao.setText("Escala de Pontuação");

        itmPontuacaoMinima.setText("Pontuação Mínima");
        itmPontuacaoMinima.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmPontuacaoMinimaActionPerformed(evt);
            }
        });
        menuEscalaPontuacao.add(itmPontuacaoMinima);

        itmPontuacaoMaximo.setText("Pontuação Máxima");
        itmPontuacaoMaximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmPontuacaoMaximoActionPerformed(evt);
            }
        });
        menuEscalaPontuacao.add(itmPontuacaoMaximo);

        itmPrecisaoPontuacao.setText("Precisão da Pontuação");
        itmPrecisaoPontuacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmPrecisaoPontuacaoActionPerformed(evt);
            }
        });
        menuEscalaPontuacao.add(itmPrecisaoPontuacao);

        menuConfigurar.add(menuEscalaPontuacao);

        menuSistemaPenalizacao.setText("Sistema de Penalização");

        chbmIncidenciaPenalizacao.setSelected(prova.getIncidenciaPenalizacao());
        chbmIncidenciaPenalizacao.setText("Incidência de Penalização");
        chbmIncidenciaPenalizacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                chbmIncidenciaPenalizacaoActionPerformed(evt);
            }
        });
        menuSistemaPenalizacao.add(chbmIncidenciaPenalizacao);

        itmProporcaoPenalizacao.setText("Proporção da Penalização");
        itmProporcaoPenalizacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmProporcaoPenalizacaoActionPerformed(evt);
            }
        });
        menuSistemaPenalizacao.add(itmProporcaoPenalizacao);

        menuConfigurar.add(menuSistemaPenalizacao);

        barraMenuPrincipal.add(menuConfigurar);

        menuAjuda.setText("Ajuda");

        itmAjuda.setText("Ajuda");
        itmAjuda.setVisible(false);
        itmAjuda.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmAjudaActionPerformed(evt);
            }
        });
        menuAjuda.add(itmAjuda);

        itmSobre.setText("Sobre...");
        itmSobre.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itmSobreActionPerformed(evt);
            }
        });
        menuAjuda.add(itmSobre);

        barraMenuPrincipal.add(menuAjuda);

        setJMenuBar(barraMenuPrincipal);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(painelConteudoProva, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
            .addComponent(painelConteudoCartao, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(painelConteudoProva, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(painelConteudoCartao, javax.swing.GroupLayout.DEFAULT_SIZE, 322, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void itmNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmNovoActionPerformed
        ProvaFormulario formularioProva;
        itmFecharActionPerformed(evt);
        
        formularioProva = new ProvaFormulario(this, true, prova);
        formularioProva.setTitle("Nova Prova");
        formularioProva.setLocationRelativeTo(this);
        formularioProva.setVisible(true);

        if(!prova.isProvaSalva()){
            ProvaPainelDados painelDadosProva = new ProvaPainelDados(prova, this);
            painelConteudoProva.add(painelDadosProva);
            painelConteudoProva.validate();
            painelConteudoProva.repaint();

            //Ativa os menu editar e configurar
            menuEditar.setEnabled(true);
            menuCorrigir.setEnabled(true);
            menuConfigurar.setEnabled(true);

            //Permite visualizar a parte dos cartões
            painelGerenciamentoCartao = new CartaoPainelGerencimento(prova);
            painelConteudoCartao.removeAll();
            painelConteudoCartao.add(painelGerenciamentoCartao);
            painelConteudoCartao.revalidate();
            painelConteudoCartao.repaint();
        }
    }//GEN-LAST:event_itmNovoActionPerformed

    private void itmAbrirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmAbrirActionPerformed
        Prova novaProva = new Prova();
        novaProva.setIdProva(0);
        ProvaLocalizar localizadorProva = new ProvaLocalizar(this, true, novaProva);
        localizadorProva.setLocationRelativeTo(this);
        localizadorProva.pack();
        localizadorProva.setVisible(true);
        
        novaProva = localizadorProva.getProva();
                
        itmFecharActionPerformed(evt);
        
        this.prova = novaProva;
        ProvaPainelDados painelDadosProva = new ProvaPainelDados(this.prova, this);
        painelConteudoProva.add(painelDadosProva);
        painelConteudoProva.validate();
        painelConteudoProva.repaint();

        //Ativa os menu editar e configurar
        menuEditar.setEnabled(true);
        menuCorrigir.setEnabled(true);
        menuConfigurar.setEnabled(true);

        //Permite visualizar a parte dos cartões
        painelGerenciamentoCartao = new CartaoPainelGerencimento(this.prova);
        painelConteudoCartao.removeAll();
        painelConteudoCartao.add(painelGerenciamentoCartao);
        painelConteudoCartao.revalidate();
        painelConteudoCartao.repaint();
    }//GEN-LAST:event_itmAbrirActionPerformed

    private void itmSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmSalvarActionPerformed
        if(prova.getGabarito().equalsIgnoreCase("")){
            JOptionPane.showMessageDialog(this, "O gabarito da prova não foi informado.\nInforme o gabarito da prova!", "Falta gabarito", JOptionPane.YES_NO_CANCEL_OPTION);
        }else{
            if(!prova.isProvaSalva()){
                ProvaDAO provaDAO = new ProvaDAO();
                if(provaDAO.provaJaExiste(prova.getNome())){
                    CartaoDAO cartaoDAO = new CartaoDAO();
                    for(Cartao cartao: prova.getCartoes().values()){
                        if(cartaoDAO.cartaoJaExiste(cartao.getNumeroInscricao(), prova.getIdProva())){
                            cartaoDAO.alterarCartaoMarcacao(cartao, prova.getIdProva());
                        }else{
                            cartaoDAO.inserirCartao(cartao, prova.getIdProva());
                        }
                        
                    }
                }else{
                    provaDAO.inserirProva(prova);
                }
                painelConteudoProva.removeAll();
                painelConteudoCartao.removeAll();
                menuEditar.setEnabled(false);
                menuCorrigir.setEnabled(false);
                prova = new Prova();
                validate();
                repaint();
            }
        }
        //JOptionPane.showMessageDialog(this, "Já existe uma prova no banco de dados com este nome.\nEscolha a opção 'Salvar como' e especifique outro \nnome para salvar a prova atual.", "Nome de prova existente", JOptionPane.YES_NO_CANCEL_OPTION);
    }//GEN-LAST:event_itmSalvarActionPerformed

    private void itmSalvarComoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmSalvarComoActionPerformed
        
            if(prova.getGabarito().equalsIgnoreCase("")){
                JOptionPane.showMessageDialog(this, "O gabarito da prova não foi informado.\nInforme o gabarito da prova!", "Falta gabarito", JOptionPane.YES_NO_CANCEL_OPTION);
            }else{
                ProvaSalvarComo provaSalvarComo = new ProvaSalvarComo(this, true, prova);
                provaSalvarComo.setLocationRelativeTo(this);
                provaSalvarComo.pack();
                provaSalvarComo.setVisible(true);

                if(provaSalvarComo.salvou()){
                    painelConteudoProva.removeAll();
                    painelConteudoCartao.removeAll();
                    menuEditar.setEnabled(false);
                    menuCorrigir.setEnabled(false);
                    prova = new Prova();
                    validate();
                    repaint();
                }
            }
        
    }//GEN-LAST:event_itmSalvarComoActionPerformed

    private void itmImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmImprimirActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itmImprimirActionPerformed

    private void itmFecharActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmFecharActionPerformed
        if(!prova.isProvaSalva()){
            switch(JOptionPane.showConfirmDialog(rootPane, "A prova atual ("+prova.getNome()+") não está salva!\nDeseja salvar a prova atual?", "Atenção!", JOptionPane.INFORMATION_MESSAGE)){
                case 0: // "Ok" option
                itmSalvarActionPerformed(evt);
                break;
                case 1: // "No" option
                break;
                case 2: // "Cancel" option
                return;
            }
        }

        painelConteudoProva.removeAll();
        painelConteudoCartao.removeAll();
        menuEditar.setEnabled(false);
        menuCorrigir.setEnabled(false);
        prova = new Prova();
        validate();
        repaint();
    }//GEN-LAST:event_itmFecharActionPerformed

    private void itmSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmSairActionPerformed
        if(!prova.isProvaSalva()){
            switch(JOptionPane.showConfirmDialog(rootPane, "A prova atual ("+prova.getNome()+") não está salva!\nDeseja salvar a prova atual?", "Atenção!", JOptionPane.INFORMATION_MESSAGE)){
                case 0: // "Ok" option
                itmSalvarActionPerformed(evt);
                itmFecharActionPerformed(evt);
                break;
                case 1: // "No" option
                break;
                case 2: // "Cancel" option
                return;
            }
        }
        System.exit(0);
    }//GEN-LAST:event_itmSairActionPerformed

    private void itmInserirCartaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmInserirCartaoActionPerformed
        painelGerenciamentoCartao.incluirCartao(evt);
    }//GEN-LAST:event_itmInserirCartaoActionPerformed

    private void itmAlterarCartaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmAlterarCartaoActionPerformed
        painelGerenciamentoCartao.alterarCartao(evt);
    }//GEN-LAST:event_itmAlterarCartaoActionPerformed

    private void itmExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmExcluirActionPerformed
        painelGerenciamentoCartao.excluirCartao(evt);
    }//GEN-LAST:event_itmExcluirActionPerformed

    private void itmLocalizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmLocalizarActionPerformed
        painelGerenciamentoCartao.localizarCartao(evt);
    }//GEN-LAST:event_itmLocalizarActionPerformed

    private void menuCorrigirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_menuCorrigirActionPerformed
        painelGerenciamentoCartao.corrigirCartoes(evt);
    }//GEN-LAST:event_menuCorrigirActionPerformed

    private void itmrbMultiplaEscolhaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmrbMultiplaEscolhaActionPerformed
        prova.setTipoProva(TipoProva.MULTIPLA_ESCOLHA);
    }//GEN-LAST:event_itmrbMultiplaEscolhaActionPerformed

    private void itmrbVerdadeiroFalsoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmrbVerdadeiroFalsoActionPerformed
        prova.setTipoProva(TipoProva.VERDADEIRO_FALSO);
    }//GEN-LAST:event_itmrbVerdadeiroFalsoActionPerformed

    private void itmQuantidadeQuestoesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmQuantidadeQuestoesActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itmQuantidadeQuestoesActionPerformed

    private void itmPontuacaoMinimaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmPontuacaoMinimaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itmPontuacaoMinimaActionPerformed

    private void itmPontuacaoMaximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmPontuacaoMaximoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itmPontuacaoMaximoActionPerformed

    private void itmPrecisaoPontuacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmPrecisaoPontuacaoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itmPrecisaoPontuacaoActionPerformed

    private void chbmIncidenciaPenalizacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chbmIncidenciaPenalizacaoActionPerformed
        if (chbmIncidenciaPenalizacao.isSelected()) {
            itmProporcaoPenalizacao.setEnabled(true);
        } else {
            itmProporcaoPenalizacao.setEnabled(false);
        }
        ProvaPainelDados ppd = (ProvaPainelDados) painelConteudoProva.getComponent(0);
        ppd.setIncidenciaPenalizacao(chbmIncidenciaPenalizacao.isSelected());
    }//GEN-LAST:event_chbmIncidenciaPenalizacaoActionPerformed

    private void itmProporcaoPenalizacaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmProporcaoPenalizacaoActionPerformed
        String strProporcaoPenalizacao, msgErro;
        int proporcaoPenalizacao;
        strProporcaoPenalizacao = JOptionPane.showInputDialog(rootPane, "Informe a proporção da penalização: ", "Proporção da Penalização", JOptionPane.OK_CANCEL_OPTION);
        try {
            proporcaoPenalizacao = Integer.parseInt(strProporcaoPenalizacao);
            prova.setProporcaoPenalizacao(proporcaoPenalizacao);
            ProvaPainelDados ppd = (ProvaPainelDados) painelConteudoProva.getComponent(0); // Pego o painel com as informações da prova
            ppd.setProporcaoPenalizacao(proporcaoPenalizacao);
        } catch (NumberFormatException excecao) {
            JOptionPane.showMessageDialog(rootPane, "Por favor, informe um número maior que 0.", "Formato inválido!", JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_itmProporcaoPenalizacaoActionPerformed

    private void itmAjudaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmAjudaActionPerformed
        Desktop d = Desktop.getDesktop();
        try {
            d.browse(new URI("" + getClass().getResource("ajuda.html")));
        } catch (URISyntaxException | IOException e) {
            JOptionPane.showMessageDialog(rootPane, "Conteúdo de Ajuda não encontrado!", "Erro!", JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_itmAjudaActionPerformed

    private void itmSobreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itmSobreActionPerformed
        SobreJanela janelaSobre = new SobreJanela();
        janelaSobre.setVisible(true);
    }//GEN-LAST:event_itmSobreActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("GTK+".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Scacp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Scacp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Scacp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Scacp.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Scacp().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JMenuBar barraMenuPrincipal;
    private javax.swing.JCheckBoxMenuItem chbmIncidenciaPenalizacao;
    private javax.swing.JMenuItem itmAbrir;
    private javax.swing.JMenuItem itmAjuda;
    private javax.swing.JMenuItem itmAlterarCartao;
    private javax.swing.JMenuItem itmExcluir;
    private javax.swing.JMenuItem itmFechar;
    private javax.swing.JMenuItem itmImprimir;
    private javax.swing.JMenuItem itmInserirCartao;
    private javax.swing.JMenuItem itmLocalizar;
    private javax.swing.JMenuItem itmNovo;
    private javax.swing.JMenuItem itmPontuacaoMaximo;
    private javax.swing.JMenuItem itmPontuacaoMinima;
    private javax.swing.JMenuItem itmPrecisaoPontuacao;
    private javax.swing.JMenuItem itmProporcaoPenalizacao;
    private javax.swing.JMenuItem itmQuantidadeQuestoes;
    private javax.swing.JMenuItem itmSair;
    private javax.swing.JMenuItem itmSalvar;
    private javax.swing.JMenuItem itmSalvarComo;
    private javax.swing.JMenuItem itmSobre;
    private javax.swing.JRadioButtonMenuItem itmrbMultiplaEscolha;
    private javax.swing.JRadioButtonMenuItem itmrbVerdadeiroFalso;
    private javax.swing.JMenu menuAjuda;
    private javax.swing.JMenu menuArquivo;
    private javax.swing.JMenu menuConfigurar;
    private javax.swing.JMenu menuCorrigir;
    private javax.swing.JMenu menuEditar;
    private javax.swing.JMenu menuEscalaPontuacao;
    private javax.swing.JMenu menuSistemaPenalizacao;
    private javax.swing.JMenu menuTipoProva;
    private javax.swing.JPanel painelConteudoCartao;
    private javax.swing.JPanel painelConteudoProva;
    // End of variables declaration//GEN-END:variables
}
